package com.itheima.d2_final;

import java.util.ArrayList;

/*
    final关键字
    final 关键字是最终的意思，可以修饰（类、方法、变量）

    修饰类：该类被称为最终类，特点是不能被继承了。
    修饰方法：该方法被称为最终方法，特点是不能被重写了。
    修饰变量：该变量只能被赋值一次。

    final修饰变量的注意
    final修饰基本类型的变量，变量存储的数据不能被改变。
    final修饰引用类型的变量，变量存储的地址不能被改变，但地址所指向对象的内容是可以被改变的
 */
//最终的类（不能被继承）
final class Father{ }
//class Child extends Father{ }   //报错。 原因：Father类不能继承

class Fu{
    public final void method(){}
}
class Zi extends  Fu{
    //父类中的final修饰的方法，不能被重写
    //public void method(){}
}

public class FinalDemo1 {
    public static void main(String[] args) {
        //常量
        final String name="字符串";
        //name="黑马";//报错。name是常量，在值初始化之后不能被修改


        //final修饰集合 （final修饰引用类型数据时：地址值不能改变、地址下存储的内容可以改变）
        final ArrayList<String> list =new ArrayList<>();
        list.add("Java");
        list.add("MySQL");
        list.add("Html");
    }
}




